/*
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 */
using VOL.Core.BaseProvider;
using VOL.Entity.DomainModels;
using VOL.Core.Utilities;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace VOL.demo.IServices
{
    public partial interface ISalesReturnOrderModelService : IService<SalesReturnOrderModel>
    {
        /// <summary>
        /// 分页查询销售退货订单
        /// </summary>
        /// <param name="pageIndex">页码</param>
        /// <param name="pageSize">每页记录数</param>
        /// <param name="orderCode">退货单号</param>
        /// <param name="status">单据状态</param>
        /// <param name="supplierId">供应商ID</param>
        /// <param name="returnDate">退货日期</param>
        /// <returns>分页结果</returns>
        Task<WebResponseContent> GetSalesReturnOrderPageListAsync(
            int pageIndex, 
            int pageSize, 
            string orderCode = null, 
            int? status = null, 
            long? supplierId = null, 
            System.DateTime? returnDate = null);

        /// <summary>
        /// 根据销售单号查询销售明细列表
        /// </summary>
        /// <param name="shopOrderCode">销售单号</param>
        /// <returns>销售明细列表</returns>
        Task<WebResponseContent> GetSalesOrderDetailsByCodeAsync(string shopOrderCode);

        /// <summary>
        /// 保存销售退货订单（包括主表和明细表）
        /// </summary>
        /// <param name="request">退货订单数据</param>
        /// <returns>保存结果</returns>
        Task<WebResponseContent> SaveSalesReturnOrderAsync(SalesReturnOrderSaveRequest request);
    }
}
